As described in co-pending application Ser. No. 08/130,577, filed Oct. 1, 1993 entitled "DUAL DISPLAY VIDEO CONTROLLER", it may be desirable to generate two video display signals from one video controller in order to simultaneously display two different video images on two separate video displays.
FIG. 1 is a block diagram of a prior art video controller 100 which may display a video image to both CRT display 106 (or external display) and an internal flat panel display 107 (e.g., LCD flat panel display or the like). Display memory 108 may comprise a random access memory (e.g., DRAM, SRAM or the like) which may be accessed through memory controller 101. Display memory 108 may also be known as a video memory or VMEM in the graphic controller arts. However, due to the advent of Motion Video.TM. displays in computer systems, the term "video memory" may be a misnomer. Thus, for the purposes of this application, such a memory will be referred to as a display memory.
The size of display memory 108 may be determined by the amount of data to be displayed at one time. For example, for a 640 by 480 pixel monochrome display, a minimum of 307,200 bits of data may be needed. If a multi-color or gray scaled monochrome display is desired, then the necessary number of bits per pixel may be increased. For example, if eight bits are provided for each pixel, then each pixel may take one of 2.sup.8 or 256 colors (or gray scales). For eight bits of data per pixel, a 640 by 480 pixel display may require a minimum of 2,457,600 bits of information, or 76.8 Kilobytes of DRAM, where each word comprises 32 bits (four 8-bit bytes), representing four pixels. In practice, a standard size memory of 1 Megabyte may be used and more than one frame of video stored at one time.
As shown in FIG. 1, memory controller 101 may access display memory 108 and pass to attribute controller 102 one word 150 (32 bits) from display memory 108, preferably using a page mode addressing scheme. Attribute controller 102 may contain a register (not shown) for holding four pixel bytes 151 of eight bits each, from 32 bit word 150 supplied by from display memory 108. Attribute controller 102 may output each of the eight bit pixel bytes 151 in sequence to look-up table 103. Look-up table 103 may comprise another random access memory having, in this example, at least 256 addresses.
Look-up table 103 may then convert each of the eight bit pixel bytes 151 into an eighteen bit binary number (hereinafter referred to as pixel word 152) representing a pixel color (or gray scale). Look-up table 103 may then take one of the four eight bit pixel bytes 151 as an address for its internal random access memory and outputs an eighteen bit binary number stored as that address as pixel word 152 representing the color (or gray scale) for that pixel.
Individual computer application programs may be able to alter the contents of look-up table 103 such that any or all of the 256 available colors may be selected from a palette of 2.sup.18 or 262,144 colors. Of course, other numbers of bits may be used to provide a broader range or palette of available colors. Further, although only 256 of these colors are shown here as being available at one time, other numbers of colors per pixel may be used by increasing the number of bits per pixel byte 151.
From look-up table 103, the eighteen bit pixel word 152 may be transferred to DAC 104. DAC 104 may comprise a digital-to-analog converter which may converts an eighteen bit pixel word 152 into analog RGB (Red, Green, Blue) signals 153, 154, and 155 to drive analog CRT display 106. In the embodiment shown in FIG. 1, six bits each from eighteen bit pixel word 152 are used to create analog signals 153, 154, and 155 for Red, Green and Blue levels. DAC 104 typically comprises a number of current sources which may be added together in a binary fashion to create an appropriate analog signal level for each of the outputs 153, 154, 155 corresponding to a selected six bits of the eighteen bit pixel word 152.
Flat panel display 107 (which may comprise an active or passive LCD flat panel display, plasma display, electro-luminescent display or the like), however, does not rely upon an analog signal to determine pixel intensity or color. Thus, in order to provide a simultaneous display on both CRT display 106 and flat panel display 107, two different drive signals may be generated. As shown in FIG. 1, eight bit pixel bytes 151 are converted via look-up table 103 into eighteen bit pixel words 152. Flat panel controller 105 may use eighteen bit pixel words 152 to generate an appropriate video display on flat panel display 107.
For a monochrome display, the eighteen bit pixel word 152 may be converted into a grayscale value using an appropriate internal conversion algorithm. Flat panel controller 105, using frame rate modulation and dithering techniques, may generate this grayscale on flat panel display 107. For a color display, eighteen bit pixel word 152 may be converted into separate red, green and blue sub-pixels.
Flat panel controller 105, using frame rate modulation (for passive LCD panels) and dithering techniques (for active and passive LCD panels), may generate appropriate color intensities for each subpixel. Such frame rate modulation and dithering techniques are described in Bassetti, Jr., U.S. Pat. No. 5,122,783, issued Jun. 16, 1992, assigned to the same assignee as the present application and incorporated herein by reference. Thus, with the apparatus of FIG. 1, it is possible to display the same image on both flat panel display 107 and CRT display 106.
The apparatus of FIG. 1 utilizes common elements for much of the data paths for CRT 106 and Flat Panel 107. Data for both displays is passed through attribute controller 102 and look-up table 103 before being diverted to either DAC 104 or flatpanel controller 105. Such an arrangement may conserve hardware resources, however, in such an arrangement, it may be difficult to provide two display images on dissimilar displays at different refresh rates or pixel resolutions.
So-called "multimedia" presentations have become increasingly popular. These presentations usually, as the name implies, use a variety of media (e.g., sound, image, video or the like) to make an information presentation such as a sales promotion, or educational lecture. For the travelling lecturer, a powerful lap-top or notebook computer, coupled to a portable LCD projector screen and overhead projector may provide a dynamic and effective presentation.
An LCD projector screen can be coupled to an external video port (e.g., VGA, EGA or the like) of most portable computers and, when coupled to an overhead projector, project a display image onto a wall or screen. Other types of LCD projector screens incorporate the projector (e.g., light source, focusing lenses) into one compact unit. Alternately, a large, high resolution monitor can be used to provide a presentation display for a small to medium sized group. A computer allows the use of action video and colorful special effects, and in addition avoids the problems associated with using a stack of overhead transparencies.
However, when such multimedia display equipment is used with conventional portable computers, at best, only the same image can be displayed on both displays (internal or projected) at the same time. In many instances, it is desirable to project the presentation display on an external monitor while displaying other information (e.g., speaker's notes or the like) on an internal display. It may also be desirable to be able to switch images between the two displays, such that a speaker can preview an image before projecting the image to the viewing audience.
In addition, the need for two video displays containing different images may arise in other situations where computers are used, such as CAD systems, spreadsheets, word processors or the like. In particular, the use of the Windows.TM. environment may make it desirable to allow a user to open one window (or application) on a first video display (e.g., laptop flat panel display) and open another application on another display (e.g., external monitor). Thus, for example, a user may be able to display a scheduler (daily organizer) program on one display while operating a word processing program on another.
Moreover, it may be desirable to provide a portable or non-portable computer with the ability to operate more than one video display. One shortcoming of the Windows.TM. software and other Graphical User Interfaces (GUIs) is that the user may be required to view his windows through the tight aperture of the traditional 14 inch monitor. The use of dual displays may allow a user to more readily operate in a true multitasking environment with an increased usable display area.
The prior art approach to providing multiple displays with different images driven by one computer has been to provide separate video controllers for each display. Early versions of Lotus 1-2-3.TM., for example, took advantage of this technique by allowing a user to view two different displays (MDA and CGA) simultaneously. Such a technique was possible, as each controller used a different logical address in the memory of the host computer.
The Apple.TM. Powerbook.TM. computer is believed to use a similar dual controller technique to provide for two different displays having the same resolution and refresh rate. In the lap-top or notebook environment, however, the use of two separate controllers can increase power drain and increase cost, weight and size of the computer, all especially critical in the highly competitive notebook computer market.
Co-pending application Ser. No. 08/130,577, filed Oct. 1, 1993 entitled "DUAL DISPLAY VIDEO CONTROLLER" describes an apparatus and technique for generating two video display signals from a single video controller in order to create different display images on two video displays. In a first embodiment of that invention, both resolutions may have the same resolution and refresh rate.
Due to practical considerations, such as data bandwidth, it may be desirable in such a system to provide both displays at the same resolution and refresh rate. However, in practical applications, it may be desirable to generate signals for two video displays having different resolutions, pixel depths, and/or refresh rates. For example, it may be desirable to generate two displays in different graphics modes, or one display in a graphics mode and another in text mode. Moreover, two different displays (e.g., flat panel display and CRT) may use refresh rates different from one another. Alternately, one display may provide improved performance operating at a particular refresh rate unavailable for the other display.
In addition, wider DRAMs have become more readily available. Such DRAMs may have a width of 32, 64 or 128 bits. In such wide DRAMs, as many as 32, 64, or 128 bits may be read or written in one data read or write cycle. Thus use of such wide DRAMs for display memory may improve data bandwidth.